function request(oSelect,id_anim) {
	//récupération des tissus dans la base de données en fonction du groupe_organe et de l'animal sélectionnés
	var value = oSelect.options[oSelect.selectedIndex].value;
	
	if(value!="none"){
		var var1 = encodeURIComponent(value);
		var xhr = getXMLHttpRequest();

		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
				readData(xhr.responseXML,"tissu","tissuSelect");
			} 
		};
		 
		xhr.open("POST", "get_tissu_cmd.php", true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("groupe_organe="+var1+"&id_anim="+id_anim);
	}
	else{
		//masquage des autres select si aucun organe n'est sélectionné
		document.getElementById("tissuSelect").style.display="none";
		document.getElementById("tissuSelect").value="none";
		document.getElementById("tissuSelect2").style.display="none";
		document.getElementById("tissuSelect2").value="none";
		document.getElementById("type").style.display="none";
		document.getElementById("type2").style.display="none";	
		document.getElementById("type2").value="none";		
	}
}
 
function readData(oData,nomSelect,para) {
	//remplissage du select donné par nomSelect
	var nodes = oData.getElementsByTagName("item");
	var oSelect = document.getElementById(nomSelect);
	var oPara = document.getElementById(para);
	var oOption, oInner;
	 
	oSelect.innerHTML = "";	
	ajouter_option(oSelect, "Sélection", "none");
	
	for (var i=0, c=nodes.length; i<c; i++) {
		var name = nodes[i].getAttribute("name");
		var unite = nodes[i].getAttribute("unite");
		ajouter_option(oSelect,name,name, unite);
	}
	
	if(nodes.length!=0){ oPara.style.display = "inline"; }		
	else{ oPara.style.display = "none"; }
}

function ajouter_option(select, nom, valeur, unite){
	//ajout d'option au select
	var option = document.createElement("option");
	var texte = document.createTextNode(nom);
	option.value = valeur;
	if (unite != null)
		option.setAttribute("unite",unite);
	option.appendChild(texte);
	select.appendChild(option);
}

function afficherBoite(oSelect,id_anim,oPara){
	//récupération du nom des boites dans la base de données en fonction du tissu et de l'animal sélectionnés
	var value = oSelect.options[oSelect.selectedIndex].value;
	
	if(value!="none"){		
		var var1 = encodeURIComponent(value);
		var xhr = getXMLHttpRequest();

		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
				readData(xhr.responseXML, "boite",oPara);
			} 
		};
		 
		xhr.open("POST", "get_boite.php", true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("tissu="+var1+"&id_anim="+id_anim);
	}
	else{
		//masquage et réinitialisation des select suivant si aucun tissu n'a été selectionné
		document.getElementById("type2").style.display="none";
		document.getElementById("type2").value="none";
		document.getElementById("type").style.display="none";
		document.getElementById("tissuSelect2").style.display="none";
		document.getElementById("tissuSelect2").value="none";
		document.getElementById("num").value="";
		document.getElementById("date").value="";
		document.getElementById("qte").value="";
		document.getElementById("nom").value="";
	}
}

function afficherLoc(oSelect,id_anim,oPara){
	var unite = oSelect.options[oSelect.selectedIndex].getAttribute("unite");
	if (unite != null)
		document.getElementById("uniteCommande").innerHTML=unite;
	//récupération des localisations en fonction de la boite et de l'animal sélectionnés
	var value = oSelect.options[oSelect.selectedIndex].value;
	
	if(value!="none"){		
		var var1 = encodeURIComponent(value);
		var xhr = getXMLHttpRequest();

		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
				readData(xhr.responseXML, "loc",oPara);
			} 
		};
		 
		xhr.open("POST", "get_loc.php", true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("boite="+var1+"&id_anim="+id_anim);
	}
	else{
		//masquage et réinitialisation des select suivant si aucune boite n'a été selectionné
		document.getElementById("type").style.display="none";
		document.getElementById("tissuSelect2").style.display="none";
		document.getElementById("tissuSelect2").value="none";
		document.getElementById("num").value="";
		document.getElementById("date").value="";
		document.getElementById("qte").value="";
		document.getElementById("nom").value="";
	}
}

function affiche(oSelect){
	//affichage des champs de commande si tous les champs précédents ont bien été sélectionnés
	var value = oSelect.options[oSelect.selectedIndex].value;
	
	if(value!="none"){
		document.getElementById("type").style.display="inline";
	}
	else{
		document.getElementById("type").style.display="none";
		document.getElementById("num").value="";
		document.getElementById("date").value="";
		document.getElementById("qte").value="";
		document.getElementById("nom").value="none";
		document.getElementById("autre_nom").value="";
	}		
}

function afficheNew(oSelect){
	//affichage du champ nouveau pour le nom du laboratoire
	var value = oSelect.options[oSelect.selectedIndex].value;
	var autre=document.getElementsByClassName("autre");
	
	if(value=="none"){
		for(var i=0; i<autre.length;i++){autre[i].style.display="none";}
	}
	else if(value=="autre"){
		for(var i=0; i<autre.length;i++){autre[i].style.display="inline";}
	}		
}

function verif_form(f){ //vérification du formulaire avant l'envoie au serveur
	var groupeOk = verifSelect(f.groupe);
	var tissuOk = verifSelect(f.tissu);
	var locOk = verifSelect(f.loc);
	var boiteOk = verifSelect(f.boite);
	var dateOk = verifDate(f.date);
	var qteOk = verif(f.qte);
	var nomOk = verifSelect(f.nom);
	var numOk = verifNum(f.num);
	
	if(dateOk && groupeOk && tissuOk && qteOk && locOk && boiteOk && nomOk && numOk){
		return true;
	}
	else{
		alert("Veuillez remplir correctement tous les champs");
		return false;
	}
}

function verifNum(champ){
	//vérification du champ numéro de commande
	var name = champ.name;
	var regex=/^\d{1,5}$/;
	
	if((champ.value.length>0 && !(regex.test(champ.value))) || champ.value.length==0){
		document.getElementById("erreur_"+name).style.display="inline";
		return false;
	}
	else{
		document.getElementById("erreur_"+name).style.display="none";
		return true;
	}
}
